iT邦幫忙

2

自己在家接收來自飛機的ADS-B訊號!

  • 分享至 

  • xImage
  •  

想看飛機又不想透過 FlightRadar24 !?

那就自己架一個接收站吧 !

https://ithelp.ithome.com.tw/upload/images/20211209/20111805eFIHUOmrnS.png

一、認識 ADS-B

廣播式自動相關監視(英語:Automatic dependent surveillance – broadcast,縮寫ADS–B)是一種飛機監視技術,飛機通過衛星導航系統確定其位置,並進行定期廣播,使其可被追蹤。空中交通管制地面站可以接收這些資訊並作為二次雷達的一個替代品,從而不需要從地面發送問詢信號。其他飛機也可接收這些資訊以提供姿態感知和進行自主規避。
ADS–B是一種「自動」系統,它不需要機師或其他外部資訊輸入,而是依賴飛機導航系統的數據。

資料來源: wiki -廣播式自動相關監視

絕大部分的民航機都會配備這個裝置,並不斷發送訊號告知其他飛機、塔台目前自身飛機的高度、經緯度、呼號、速度、航向等等訊息。由於這些訊息並不會加密,因此就可以透過天線來接收這些資料。蠻多能查看即時飛機的網站及App也都是透過這個原理來取得資料,像是 FlightRadar24FlightAware

https://ithelp.ithome.com.tw/upload/images/20211209/20111805qSkf4FRGpS.png

二、設備

首先你需要一個能夠接收到 1090mhz 的設備,這邊使用 RTL2832U + R820T 晶片組的電視棒就可以了,在露天蝦皮等等平台搜尋 RTL2832U + R820T 可以找到很多廠牌及款式,價格大概400~600,買最便宜的就可以了。

如第一張圖,我在四樓使用電視棒附的小天線就能收到近中國大陸的訊號,在遮蔽物少的地方是可以不用額外買天線來用。

https://ithelp.ithome.com.tw/upload/images/20211209/20111805TIPmYZic8v.jpg

由於電視棒只能接收不能發送,因此不用擔心「干擾通信」以及「沒有業餘無線電執照」等會觸法問題!
此外也可以將接收到的信號提供給 FlightRadar24 等網站,可以換取免費的高級會員資格

三、安裝

在網路上能找到許多能解碼ADS-B的軟體,不過幾乎都是要付費的,且功能也都蠻陽春的。

這邊要使用的是 GitHub 上的開源專案 Dump1090,它不但是免費的還有內建 WebServer 讓你能在本機上看到圖形化的資料(如第一張圖),如果覺得太醜的話還能自己寫網頁來接 Dump1090 吐出來的資料。

GitHub

Linux & Mac

Linux 跟 Mac 會比較麻煩一點,首先先把專案 clone 下來:

git clone https://github.com/MalcolmRobb/dump1090.git

接著進資料夾下指令

cd ./dump1090
make

⚠️安裝問題一

這時候會遇到問題,缺少了 rtl-sdr.h。其實他就在資料夾 rtlsdr 裡面,只要把資料夾內的兩個東西複製到外面的目錄就好了!

⚠️安裝問題二

/bin/sh: pkg-config: command not found

出現這個問題就是電腦中沒安裝 pkg-config 套件。只要安裝就好了。

# Linux
sudo apt-get install pkg-config

# Mac
brew install pkg-config

⚠️安裝問題三

Package librtlsdr was not found in the pkg-config search path

這個問題是缺少 librtlsdr 套件,一樣也是安裝就好。

# Linux
sudo apt-get install librtlsdr

# Mac
brew install librtlsdr

✅啟動

透過 --help 可以看到有哪些可以使用的指令

./dump1090 --help

-----------------------------------------------------------------------------
|                        dump1090 ModeS Receiver         Ver : 1.10.3010.14 |
-----------------------------------------------------------------------------
--device-index <index>   Select RTL device (default: 0)
--gain <db>              Set gain (default: max gain. Use -10 for auto-gain)
--enable-agc             Enable the Automatic Gain Control (default: off)
--freq <hz>              Set frequency (default: 1090 Mhz)
--ifile <filename>       Read data from file (use '-' for stdin)
--interactive            Interactive mode refreshing data on screen
--interactive-rows <num> Max number of rows in interactive mode (default: 15)
--interactive-ttl <sec>  Remove from list if idle for <sec> (default: 60)
--interactive-rtl1090    Display flight table in RTL1090 format
--raw                    Show only messages hex values
--net                    Enable networking
--modeac                 Enable decoding of SSR Modes 3/A & 3/C
--net-beast              TCP raw output in Beast binary format
--net-only               Enable just networking, no RTL device or file used
--net-bind-address <ip>  IP address to bind to (default: Any; Use 127.0.0.1 for private)
--net-http-port <port>   HTTP server port (default: 8080)
--net-ri-port <port>     TCP raw input listen port  (default: 30001)
--net-ro-port <port>     TCP raw output listen port (default: 30002)
--net-sbs-port <port>    TCP BaseStation output listen port (default: 30003)
--net-bi-port <port>     TCP Beast input listen port  (default: 30004)
--net-bo-port <port>     TCP Beast output listen port (default: 30005)
--net-ro-size <size>     TCP raw output minimum size (default: 0)
--net-ro-rate <rate>     TCP raw output memory flush rate (default: 0)
--net-heartbeat <rate>   TCP heartbeat rate in seconds (default: 60 sec; 0 to disable)
--net-buffer <n>         TCP buffer size 64Kb * (2^n) (default: n=0, 64Kb)
--lat <latitude>         Reference/receiver latitude for surface posn (opt)
--lon <longitude>        Reference/receiver longitude for surface posn (opt)
--fix                    Enable single-bits error correction using CRC
--no-fix                 Disable single-bits error correction using CRC
--no-crc-check           Disable messages with broken CRC (discouraged)
--phase-enhance          Enable phase enhancement
--aggressive             More CPU for more messages (two bits fixes, ...)
--mlat                   display raw messages in Beast ascii mode
--stats                  With --ifile print stats at exit. No other output
--stats-every <seconds>  Show and reset stats every <seconds> seconds
--onlyaddr               Show only ICAO addresses (testing purposes)
--metric                 Use metric units (meters, km/h, ...)
--snip <level>           Strip IQ file removing samples < level
--debug <flags>          Debug mode (verbose), see README for details
--quiet                  Disable output to stdout. Use for daemon applications
--ppm <error>            Set receiver error in parts per million (default 0)
--help                   Show this help

Debug mode flags: d = Log frames decoded with errors
                  D = Log frames decoded with zero errors
                  c = Log frames with bad CRC
                  C = Log frames with good CRC
                  p = Log frames with bad preamble
                  n = Log network debugging info
                  j = Log frames to frames.js, loadable by debug.html

如果要開成網頁並顯示在終端機則可以使用

./dump1090 --interactive --net

接著在終端就可以看到附近的飛機啦,這時打開瀏覽器進入 localhost:8080 就能看到網頁上的資訊啦!


Windows

Windows下就省下安裝的步驟,簡單很多!直接下載後裡面有一個 dump1090-win.1.10.3010.14.zip 解壓縮後一樣下指令就可以用了。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言